/**
 * @description 请求路由
 * 所有请求路由都会往这里面走
 */
const express = require('express')
const router = express.Router()
const User = require('../model/User') // 用户表

/**
 * @description 登录路由 get请求
 */
router.get('/api/login', async function (req, res) {
  // 用户名  密码
  const {name, password} = req.query // 获取传入的参数
  if (!(name && password)) {
    const data = {
      data: {
        code: 413,
        message: "请输入用户名和密码"
      }
    }
    res.status(202)
    res.send(data)
    return;
  }
  // 查询数据库，是否有该用户
  if (await User.findOne({ name })) {
    // 查询用户名和密码是否匹配
    const result = await User.findOne({ name, password })
    if (result) {
      // 匹配
      res.status(200) //
      data = {
          message: '登录成功',
          token: '用户token,学了之后再写',
          name: result.name,
          id: result._id,
      }
      res.send(data)
    } else {
      // 密码错误
      res.status(202)
      data = {
          message: '密码错误'
      }
      res.send(data)
    }
  } else {
    //用户不存在
    const data = {
      data: {
        code: 413,
        message: "用户不存在"
      }
    }
    res.status(202)
    res.send(data)
    return;
  }
})

/**
 * @description 注册路由 post请求
 */
 router.post('/api/register', async function (req, res) {
   // 用户名  密码
   const {name, password} = req.body // 获取传入的参数
   // 检验参数是否有name和password
  if (!(name && password)) {
    const data = {
      data: {
        code: 413,
        message: "请输入用户名和密码"
      }
    }
    res.status(202)
    res.send(data)
    return;
  }
  // 查询数据库是否有同名的
  if (await User.findOne({ name })) {
    const data = {
      data: {
        code: 413,
        message: "用户名已存在"
      }
    }
    res.status(202)
    res.send(data)
    return;
  } else {
    // 注册 注意验证参数
    const newUser = new User({
        name: name,
        password: password
    })
    await newUser.save()
    res.status(200)//添加成功
    res.send({
        code: 200,
        message: '注册成功'
    })
  }
})

module.exports = router